package cn.iocoder.yudao.module.wecom.controller.admin.msgsendlog.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;

@Schema(description = "管理后台 - 消息记录新增/修改 Request VO")
@Data
public class MsgSendLogSaveReqVO {

    @Schema(description = "消息id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15812")
    private Long id;

    @Schema(description = "消息类型：1-普通消息；2-定时任务", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "消息类型：1-普通消息；2-定时任务不能为空")
    private Integer msgType;

    @Schema(description = "发送内容, type=1 必填", requiredMode = Schema.RequiredMode.REQUIRED)
    private String content;

    @Schema(description = "发送类型：single-普通客户；group-客户群", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotEmpty(message = "发送类型：不能为空")
    private String chatType;

    @Schema(description = "客户ID集合或群ID集合", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "客户ID集合或群ID集合不能为空")
    private List<String> toUserList;

    @Schema(description = "发送人", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "发送人不能为空")
    private String sender;

    @Schema(description = "附件类型：1-图片；2-链接", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "附件类型不能为空")
    private Integer attachmentType;

    // ========== 图文类型 ========== //
    @Schema(description = "图片地址, type=2 必填，最多3个，‘,’号拼接", requiredMode = Schema.RequiredMode.REQUIRED)
    private List<String> imgUrl;

    // ========== 链接内容类型 ========== //
    private String linkTitle;
    private String linkDesc;
    private String linkPicUrl;
    private String linkUrl;

    // =======================  弃用附件类型 ============================= //

}